package com.example.camproject

import android.Manifest
import android.content.Context
import java.io.File
import android.graphics.Bitmap
import android.util.Log
import com.example.camproject.FileUtils.fileIsExist
import java.io.FileOutputStream
import java.io.IOException
import androidx.core.app.ActivityCompat

import android.app.Activity

import android.content.pm.PackageManager

import androidx.core.content.ContextCompat

import android.os.Build





object FileUtils {
    /**
     * 判断指定目录的文件夹是否存在，如果不存在则需要创建新的文件夹
     * @param fileName 指定目录
     * @return 返回创建结果 TRUE or FALSE
     */
    fun fileIsExist(fileName : String?) : Boolean {
        //传入指定的路径，然后判断路径是否存在
        val file = File(fileName)
        return if (file.exists()) true else {
            //file.mkdirs() 创建文件夹的意思
            file.mkdirs()
        }
    }
}


// 保存bitmap到file
object BitmapUtils {
    /**
     * Save Bitmap
     *
     * @param name file name
     * @param bm  picture to save
     */
    fun saveBitmap(name : String , bm : Bitmap , mContext : Context) {
        val TargetPath : String = mContext.getFilesDir().toString() + "/images/"
        //判断指定文件夹的路径是否存在
        if (! fileIsExist(TargetPath)) {
            Log.d("Save Bitmap" , "TargetPath isn't exist")
        }
        //如果指定文件夹创建成功，那么我们则需要进行图片存储操作
        val saveFile = File(TargetPath , name)
        try {
            val saveImgOut = FileOutputStream(saveFile)
            // compress - 压缩的意思
            bm.compress(Bitmap.CompressFormat.JPEG , 100 , saveImgOut)
            //存储完成后需要清除相关的进程
            saveImgOut.flush()
            saveImgOut.close()
            Log.d("Save Bitmap" , "The picture is save to your phone!")
        } catch (ex : IOException) {
            ex.printStackTrace()
        }
    }
}
